package org.xx.armory.doc;

import org.xx.armory.doc.impl.HtmlDocumentFactory;
import org.xx.armory.doc.impl.Word2003DocumentFactory;

import java.io.IOException;
import java.io.InputStream;

/**
 * 抽象文档工厂, 提供了文档工厂的基本操作。
 *
 * @author Haart
 */
public abstract class DocumentFactory {

    /**
     * 构造抽象文档工厂。
     */
    protected DocumentFactory() {
    }

    /**
     * 获取Word2003格式的文档工厂。
     *
     * @return Word2003格式的文档工厂。
     */
    public static DocumentFactory getWord2003Factory() {
        return new Word2003DocumentFactory();
    }

    /**
     * 获取Html格式的文档工厂。
     *
     * @return Html格式的文档工厂。
     */
    public static DocumentFactory getHtmlFactory() {
        return new HtmlDocumentFactory();
    }

    public abstract Document load(final InputStream stream)
            throws IOException;
}
